|
RAIS
3.2
|
00001 using System; 00002 using System.Collections.Generic; 00003 using System.Text; 00004 using System.Xml; 00005 using System.Data; 00006 using System.Data.SqlClient; 00007 using RAIS.DataAccessLayer; 00008 00009 namespace FillCustomQueryTableCL 00010 { 00011 public static class QueryTable 00012 { 00013 #region Fields 00014 00015 private static Dictionary<string, Query> queries = new Dictionary<string, Query>(); 00016 00017 00018 00019 #endregion 00020 public static void FillQueryTable(string connectionString, string queriesFileName) 00021 { 00022 Query.InitQuery(connectionString); 00023 Parameter.InitParameter(connectionString); 00024 queries = Query.Create(connectionString, queriesFileName); 00025 00026 using (SqlConnection sqlConnection = new SqlConnection(connectionString)) 00027 { 00028 sqlConnection.Open(); 00029 00030 StringBuilder sbParams = new StringBuilder(); 00031 StringBuilder sbQueries = new StringBuilder(); 00032 00033 XmlWriter xwParams = XmlWriter.Create(sbParams); 00034 XmlWriter xwQueries = XmlWriter.Create(sbQueries); 00035 00036 xwParams.WriteStartElement("Parameters"); 00037 xwQueries.WriteStartElement("Queries"); 00038 00039 foreach (Query query in queries.Values) 00040 query.WriteToXML(xwQueries, xwParams); 00041 00042 xwParams.WriteEndElement(); 00043 xwQueries.WriteEndElement(); 00044 00045 xwParams.Close(); 00046 xwQueries.Close(); 00047 00048 00049 WriteData(sbQueries.ToString(), sbParams.ToString(), sqlConnection); 00050 } 00051 } 00052 00053 #region Private methods 00054 00055 private static void WriteData(String queries, String parrameters, SqlConnection sqlConnection) 00056 { 00057 using (SqlCommand sqlCommand = new SqlCommand("", sqlConnection)) 00058 { 00059 sqlCommand.CommandType = CommandType.StoredProcedure; 00060 sqlCommand.CommandText = "usp_FillQueryTable"; 00061 DataAccessUtilities.AddParameter(sqlCommand, "@Queries", queries); 00062 DataAccessUtilities.AddParameter(sqlCommand, "@Parameters", parrameters); 00063 sqlCommand.Parameters[0].SqlDbType = SqlDbType.Xml; 00064 sqlCommand.Parameters[1].SqlDbType = SqlDbType.Xml; 00065 sqlCommand.ExecuteNonQuery(); 00066 } 00067 } 00068 00069 #endregion 00070 } 00071 }